home *** CD-ROM | disk | FTP | other *** search
/ Windows News 2010 Summer - Disc 1 / WN_Ete2010_CD1.iso / Onglet5 / Weezo / Weezo setup.exe / {code_appDir} / www / js / rsa.js < prev    next >
Text File  |  2010-05-19  |  1KB  |  1 lines

  1. function rsa_encrypt(j,g,c,l){var b=biFromHex(g);var f=biFromHex(c);var a=add_PKCS1_padding(j,l/8);var d=binary_to_number(a);var e=pow_mod(d,b,f);var h=number_to_binary(e,l/8);return h}function pow_mod(f,c,b){var e=new Array();var d=0;var a=biFromNumber(2);var g=biCopy(c);while(biCompare(g,bigZero)==1){rem=biModulo(g,a);g=biDivide(g,a);if(biCompare(rem,bigOne)==0){e.push(d)}d++}partial_results=new Array();part_res=biCopy(f);idx=0;for(k=0;k<e.length;k++){factor=e[k];while(idx<factor){part_res=biPow(part_res,2);part_res=biModulo(part_res,b);idx++}partial_results.push(part_res)}result=bigOne;for(k=0;k<partial_results.length;k++){part_res=partial_results[k];result=biMultiply(result,part_res);result=biModulo(result,b)}return result}function add_PKCS1_padding(c,b){var d=b-3-c.length;var a=new Array();a.push(0);a.push(2);for(i=0;i<d;i++){a.push(Math.round(Math.random()*255))}a.push(0);a=a.concat(c);return a}function binary_to_number(a){base=biFromNumber(256);result=biFromNumber(0);radix=biFromNumber(1);for(i=a.length-1;i>=0;i--){digit=biFromNumber(a[i]);part_res=biMultiply(digit,radix);result=biAdd(result,part_res);radix=biMultiply(radix,base)}return result}function number_to_binary(c,e){var d=biFromNumber(256);var b=new Array();var f=biCopy(c);var a=e-1;for(k=0;k<e;k++){b.push(0)}while(biCompare(f,bigZero)>0){mod=biModulo(f,d);f=biDivide(f,d);b[a--]=parseInt(biToString(mod,10))}return b};